package com.wuxiaolong.mybatisplus.entity;

import com.baomidou.mybatisplus.annotation.*;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.util.Date;


@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
public class User {

    /**
     * 主键设置
     *     AUTO(0),  自增，要求数据库一定要设置成自增,；如果数据库是自增的，只能用这个
     *     NONE(1),  默认 不使用 其实会使用ID_WORKER
     *     INPUT(2), 代码生成后中输入
     *     ASSIGN_ID(3),
     *     ASSIGN_UUID(4),
     *      @deprecated
     *      ID_WORKER(3),  // 雪花算法 long   数据库一定要用bigint  1411691963635265537
     *@deprecated
     *@Deprecated
     *      ID_WORKER_STR(3), // 雪花算法装换成的str
     *@deprecated
     *@Deprecated
     *      UUID(4);    // uuid
     */
    @TableId(type = IdType.NONE)
    private Long id;

    private String username;

    private String passwd;

    private Integer age;

    private String address;


    /**
     * 需要实现统一的字段填充逻辑    MetaObjectHandler
     */
    @TableField(fill= FieldFill.INSERT) // 插入时填充
    private Date createTime;

    @TableField(fill= FieldFill.INSERT_UPDATE) // 插入更新时填充
    private Date updateTime;

    /**
     * 乐观锁
     */
    @Version
    private Integer version;

    /**
     * 逻辑删除 是否删除 0：未删除 1.删除
     *
     *       logic-delete-field: delete  # 全局逻辑删除的实体字段名(since 3.3.0,配置后可以忽略不配置步骤2@TableLogic)
     *       @TableLogic
     */
    private Integer deleted;

}
